Skip to content

Latest commit

 

History

History
101 lines (65 loc) · 2.91 KB

deploy.mdx

File metadata and controls

101 lines (65 loc) · 2.91 KB
id title description subtitle tocVideo
functions-deploy
Deploy to Production
Deploy your Edge Functions to your remote Supabase Project.
Deploy your Edge Functions to your remote Supabase Project.
5OWH9c4u68M

Once you have developed your Edge Functions locally, you can deploy them to your Supabase project.

Login to the CLI

Log in to the Supabase CLI if necessary:

supabase login

See the CLI Docs to learn how to install the Supabase CLI on your local machine.

Get your project ID

Get the project ID associated with your function by running:

supabase projects list

If you haven't yet created a Supabase project, you can do so by visiting database.new.

Link your local project

Link your local project to your remote Supabase project using the ID you just retrieved:

supabase link --project-ref your-project-id

Deploy your Edge Functions

Since Supabase CLI version 1.123.4, you must have Docker Desktop installed to deploy Edge Functions.

You can deploy all of your Edge Functions with a single command:

supabase functions deploy

You can deploy individual Edge Functions by specifying the name of the function in the deploy command:

supabase functions deploy hello-world

By default, Edge Functions require a valid JWT in the authorization header. If you want to use Edge Functions without Authorization checks (commonly used for Stripe webhooks), you can pass the --no-verify-jwt flag when deploying your Edge Functions.

supabase functions deploy hello-world --no-verify-jwt

Be careful when using this flag, as it will allow anyone to invoke your Edge Function without a valid JWT. The Supabase client libraries automatically handle authorization.

Invoking remote functions

You can now invoke your Edge Function using the project's ANON_KEY, which can be found in the API settings of the Supabase Dashboard.

<CH.Code>

curl --request POST 'https://<project_id>.supabase.co/functions/v1/hello-world' \
  --header 'Authorization: Bearer ANON_KEY' \
  --header 'Content-Type: application/json' \
  --data '{ "name":"Functions" }'
import { createClient } from '@supabase/supabase-js'

// Create a single supabase client for interacting with your database
const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key')

const { data, error } = await supabase.functions.invoke('hello-world', {
  body: { name: 'Functions' },
})

</CH.Code>

You should receive the response { "message":"Hello Functions!" }.